package com.cy.store.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 定义一个拦截器
 */
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    /**
     *  在到用所有处理请求的方法之前被自动调用执行的方法
     *  检测全局的session对象中是否存有uid对象，如果有方法，如果没有重定向到登陆页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler  处理器（url + Controller：映射）
     * @retuen 如果为ture表示放行，false 表示拦截
     */
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object uid = request.getSession().getAttribute("uid");
        if (uid == null) { //说明用户没有登录，重定向返回到login.html页面
            response.sendRedirect("/web/login.html");
            return false;
        }
        return true;
    }

//    @Override
    /**
     * 在ModelAndView对象返回之后被调用的方法
     */
//    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//
//    }
//
//    @Override
//    /**
//     * 在整个请求所有关联的资源被调用执行完毕后执行的方法
//     */
//    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//
//    }
}
